package com.darrenchan.netease03

/**
  * 在定义一个scala的类的构成中，如果这个类的类名后面没有（）
  * 我们认为这个类有一个主构造器：类名()，但是()也可以省略
  * 主构造器：直接跟在类名后面的()
  *
  *
  * 定义无参构造：
  *   class Student11{}
  *   class Student11(){}
  * 定义有参构造：
  *   class Student11(var id: Int, var name: String)
  *
  *
  * 访问修饰符：
  *   public，private，private[this]
  *
  *
  * 1.如果在主构造器中，属性用val或者var修饰的时候，默认是public的
  *
  * 2.如果属性不用var或者val修饰时，相当于private[this]
  *
  * 3.主构造器也可以私有，用private和private[this]修饰
  *   class Student11 private[this](var id: Int, var name: String, age: Int, private var salary: Double, private[this] var company: String) {}
  */
class Student11(var id: Int, var name: String, age: Int, private var salary: Double, private[this] var company: String) {
//  val id = 20124849
//  var name = "陈驰"
  println("hello scala")

}

object Student11 {
  def main(args: Array[String]): Unit = {
    val stu = new Student11(20124849, "cc", 24, 19000, "baidu")
    println(stu.id)
    println(stu.name)
//    println(stu.age)//访问不到
    println(stu.salary)
//    println(stu.company)//访问不到
  }
}
